Unattended Installations

The following explains how to run the installer in unattended command line mode with pre-determined options.

BEWARE: Care should be taken that all options are correct as the unattended mode provides little or no feedback about errors in the installation process.

General Syntax

Installations

Windows

In a command line with administrative rights:

Path-to-installer\PyramidInstaller.EXE --mode unattended --optionfile path-to-file\optionfile.ini

Linux

In a terminal session:

sudo /path-to-installer/PyramidInstaller.RUN --mode unattended --optionfile /path-to-file/optionafile.ini

Upgrades

If the install is launched on a machine that has a current Pyramid installation, an upgrade installation will be performed. Upgrades can also be run unattended.

If installing in unattended mode, then the same installation options file must be used as the original installation, with the addition of 2 extra fields (see below). Alternatively, the upgrade can be completed with a separate options file with the 2 required fields.

Using different settings in the options file will throw errors or produce unreliable results.

Un-installations

The syntax is like the installation. However, there is no options section.

Path-to-Pyramid-installation\uninstall.exe --mode unattended

Options File Structure

The option file should contain all the "switches" needed to complete the installer. The switches should be saved to a file.

Each switch should have its setting name on the left and the setting value on the right. Each setting should be on its own row. For example

Linux

install-location=/opt/Pyramid data-location=/opt/Pyramid/repository

Windows

install-location=c:\program files\Pyramid data-location =c:\program files\Pyramid\repository

Install Option Settings

Switches

General

General settings needed in all installations

  • install-location - the main installation directory
  • data-location - the location for data and content
  • installation-type - Set the type of server installation. Use:
    • 0 for a single server install with all components
    • 1 for a custom / multi-server installation (where specific components / features are selectively installed).
Components

If you select 0, you can ignore the enable/disable-components switch. If you select 1 above, you must enumerate any deselected components using the switch disable-components. Alternatively use the enable-components switch to enumerate selected components. The component choices are explained in the next section below on "Components".

  • disable-components - a comma delimited list of components that WILL NOT be installed.
  • enable-components - a comma delimited list of components that WILL only be installed.
Encryption

These switches control the various encryption options for the installer.

  • certUpload - indication of whether the to upload a zip file of one or more public SSL certificates or trusted entity certificates: (1) or not (0)
  • certZipFile - The location of the zip file with certificates (only applicable if certUpload is 1)
  • fips - indication of whether the platform will operate with FIPS level encryption: (1) or not (0)

FIPS is a BETA feature

Database Repositories
Repository Venue
  • repositoryChoice - a choice to determine how to install the database repository. If the 'remote' options are used, the following settings must be set, as well as all the related details for connecting to the specified database instance.
    • Use "newlocal" to specify that a standalone, internal version of PostgreSQL should be used. (default option)
    • Use "newremote" to specify that an 'external' version of PostgreSQL, MS SQL Server or Oracle should be used. The selectNewRepository setting below must be set if using this option and specific settings for the database and server must be supplied.
    • Use "currentremote" to specify that a CURRENT 'external' version of PostgreSQL, MS SQL Server or Oracle should be re-used. This is required in a multi-server, cluster deployment, where the repository has already been setup. The selectCurrentRepository setting below must be set if using this option and specific settings for the database and server must be supplied.
    • Use "reuseremote" to specify that a copy of an existing database repository should be used. This is a convenient way to build a new stand alone installation using an a copy of an existing system and its settings and content (for example when testing a new build). The selectReuseRepository setting below must be set if using this option and specific settings for the database and server must be supplied.

Repository Type
  • selectNewRepository - specify the type of new remote database to use. This must be set if repositoryChoice was set to "newremote". Use:
    • 0 for PostgreSQL
    • 1 for MS SQL
    • 3 for Oracle
  • selectCurrentRepository - specify the type of current remote database to use. This must be set if repositoryChoice was set to "currentremote".
    • 0 for PostgreSQL
    • 1 for MS SQL
    • 3 for Oracle
  • selectReuseRepository - specify the type of re-used remote database to use. This must be set if repositoryChoice was set to "reuseremote".
    • 0 for PostgreSQL
    • 1 for MS SQL
    • 3 for Oracle
Database Repository Settings

These are not required if the internal, local PostgreSQL option was selected for repositoryChoice.

  • PostgreSQL: These switches are required if a remote PostgreSQL database was chosen.
    • postgreSqlHost - PostgreSQL Host Server Name
    • postgreSqlPort - PostgreSQL Port (standard port is usually 5432)
    • postgreSqlDb - PostgreSQL Database Name to create or connect to
    • postgreSqlUsername - PostgreSQL User Name
    • postgreSqlUserPassword - PostgreSQL User Password
    • pgLocation - indication of whether this is a native installation or one hosted in the cloud (RDS). See below.
    • pgSSL - indication of whether the connection is encrypted (1) or not (0)
  • Microsoft SQL Server: These switches are required if a remote MS SQL database was chosen
    • mssqlHost- MS SQL Host Server Name (with instance if relevant)
    • mssqlPort- MS SQL Port (standard port is usually 1433)
    • mssqlDb- MS SQL Database Name to create or connect to
    • mssqlUsername - MS SQL User Name
    • mssqlUserPassword - MS SQL User Password
    • msLocation - indication of whether this is a native installation or one hosted in the cloud (RDS), See below.
    • msSSL - indication of whether the connection is encrypted (1) or not (0)
  • Oracle: These switches are required if a remote Oracle database was chosen. Note that Oracle requires a separate system user account to operate.
    • oracleHost- Oracle Host Server Name
    • oraclePort- Oracle Port (standard port is usually 1521)
    • oracleSysUsername- Oracle System User Name
    • oracleSysPassword- Oracle System User Password
    • oracleService- Oracle Service Name
    • oracleUsername- Oracle User Name (or Schema) to create
    • oracleUserPassword- Oracle User Password
    • orLocation - indication of whether this is a native installation or one hosted in the cloud (RDS), See below.
    • orSSL - indication of whether the connection is encrypted (1) or not (0)
Database Hosting Locations

For each database type above, the installer needs to know the host location type of the database to optimize the deployment. The choices are:

  • 0 - Native Installation (default option)
  • 1 - RDS installation on Amazon AWS
  • 2 - RDS installation on Microsoft Azure
  • 3 - RDS installation on Google GCP

If the RDS option is used, the database needs to be provisioned in the relevant cloud platform BEFORE the installation is launched.

Web Server Type (Windows Only)
  • webServerOption - selects whether to deploy the internal web server only or the internal server with IIS. This switch must NOT be used in Linux option files.
    • Use webinternal for the internal engine only. This is the only option on Linux servers
    • Use webiis to deploy with Microsoft IIS Web Server on a Windows server. iisHostHeader setting below must be set if webiis is used.
  • iisHostHeader - specify the host header URL without HTTP or HTTPS. Required if webServerOption is set to webiis (e.g. "www.mysite.com")
Initial User Settings

The next 2 settings are required for both single server (self-contained) and multi-server installs.

  • initUserName -The username for the initial user. Make sure it does not contain spaces and uses only standard characters and digits.
  • initUserPassword - this is the initial password for the initial user in the system. Make sure it does not contain spaces and uses only standard characters and digits.

Components

All components are selected by default. If you choose a custom install (installation-type=1), you can supply the list of disabled components that will NOT be installed or the enabled components that WILL be install.

Windows Component Names

  • winrte - Runtime Engine Server
  • winte - Task Engine Server
  • winrtr - Router Server
  • winws - Web Server
  • winai - Data Science / Machine Learning (DS/ML) Server
  • winnlp - Natural Language Processing Server
  • winsolve - Solve Optimization Server
  • winimdb - In-Memory Database Server
  • windnc - Windows Connector Server
  • windesktop - standalone Windows desktop client browser

Example:

disable-components=winrte,winte,windnc

This will NOT install the runtime engine, task engine and the windows connector

Linux Component Names

  • linrte - Runtime Engine Server
  • linte - Task Engine Server
  • linrtr - Router Server
  • linws - Web Server
  • linai - Data Science / Machine Learning (DS/ML) Server
  • linnlp - Natural Language Processing Server
  • linsolve - Solve Optimization Server
  • linimdb - In-Memory Database Server

Example:

enable-components=linrtr,linws

This will ONLY install the router and web server

Upgrade Option Settings

Administrative User Settings

The 2 settings are required if the system is being upgraded in a single server. They are also required in a multi-server upgrade if the current installation enables the cluster to become "viable" (i.e. the cluster has at least one router, web server and run time engine).

  • adminUserName -The username for an administrative user in Pyramid. Make sure it does not contain spaces and uses only standard characters and digits.
  • adminUserPassword - The password for the admin user. Make sure it does not contain spaces and uses only standard characters and digits.

Challenges in Unattended Settings

  • Option settings should be well vetted and checked before installation. There is almost no feedback during an unattended installation. So errors will not be exposed to the installing user. In the event of error, the installer log file can be found in the installing user's temp directory.
  • In Windows, Dotnet 4.5.2 is required. The installer will install Dotnet if required, but this will require a reboot of the server before the installer can continue. Unfortunately, the feedback about the reboot is not provided in unattended mode - except by reviewing the installer log. To avoid this situation, have Dotnet installed before launching the installer in unattended mode.
  • In Linux, it is best not to use directories, server names, database names, user ID's or passwords with spaces in them. In some situations, they are acceptable. However, it is hard to pre-validate all the options in unattended mode. So they should be avoided.

Examples